package com.etone.smartAudit.vo.dataMetaTask;

import com.etone.smartAudit.enums.CheckState;
import com.etone.smartAudit.enums.DataBaseType;
import com.etone.smartAudit.vo.FileVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author: sovy
 * @date: 2020/11/26
 * @description:
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "DataMetaTaskDetailVO", description = "数据模型字段信息详情")
public class DataMetaTaskDetailVO implements Serializable {

    @ApiModelProperty("任务名称")
    private String taskName;

    @ApiModelProperty("服务器ip")
    private String serverIp;

    @ApiModelProperty("服务器名称")
    private String serverName;

    @ApiModelProperty("数据库类型")
    private DataBaseType databaseType;

    @ApiModelProperty("数据模型id")
    private Integer dataModeId;

    @ApiModelProperty("表名称")
    private String tableName;

    @ApiModelProperty("记录分隔符")
    private String rowSeparator;

    @ApiModelProperty("内容分隔符")
    private String columnSeparator;

    @ApiModelProperty("文件名称")
    private FileVO file;

    @ApiModelProperty("表头行")
    private Integer headerRow;

    @ApiModelProperty("第一行数据")
    private Integer firstRow;

    @ApiModelProperty("最后一行数据")
    private Integer lastRow;

    @ApiModelProperty("日期格式")
    private String dateFormat;

    @ApiModelProperty("日期分隔符")
    private String dateSeparator;

    @ApiModelProperty("时间分隔符")
    private String timeSeparator;

    @ApiModelProperty("日期时间排序")
    private String dataTimeSort;

    @ApiModelProperty("字段信息")
    private List<DataMetaFieldInfoVO> fieldInfo;

    @ApiModelProperty("数据库导入模式，ADD追加，COVER覆盖")
    private String importMode;

    @ApiModelProperty("创建人姓名")
    private String createAdminName;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("是否自动入库")
    private Boolean isAuto;

    @ApiModelProperty("是否完结")
    private Boolean isOver;

    @ApiModelProperty("完结时间")
    private Date overTime;

    @ApiModelProperty("人工导入执行人")
    private String execAdminName;

    @ApiModelProperty("状态")
    private CheckState state;

    @ApiModelProperty("导入结果说明")
    private String result;
}
